﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using StuMngWx.Dals;
using StuMngWx.Entities;
using StuMngWx.Enums;

namespace StuMngWx
{
    public partial class FormAddTeacher : Form
    {
        public FormAddTeacher()
        {
            InitializeComponent();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (!ValidAge())
            {
                MessageBox.Show("请输入合法的Age的值");
                ///【闻祖东 2013-2-4-233321】将焦点直接放在Age的控件上面
                txtAge.Focus();
                return;
            }

            Teacher teacher = new Teacher()
            {
                Name = txtName.Text,
                CourseType_Field = cboCourse.SelectedItem.ToString(),
                Address = txtAddress.Text,
                Age = Convert.ToInt32(txtAge.Text),
                GraduateFrom = txtGraduateFrom.Text,
                Sex_Field = cboSex.SelectedItem.ToString(),
            };

            Dal4Teachers.AddTeacher(teacher);
            MessageBox.Show("添加老师成功！");
        }

        private void FormAddTeacher_Load(object sender, EventArgs e)
        {
            //cboSex.Items.Add(false);
            //cboSex.Items.Add(true);

            //cboCourse.Items.Add(1);
            //cboCourse.Items.Add(2);
            //cboCourse.Items.Add(3);
            //cboCourse.Items.Add(4);

            cboSex.Items.Add(Sex.Male);
            cboSex.Items.Add(Sex.Famale);
            ///【闻祖东 2013-2-4-230653】学习这样的经验，不仅是在业务中要善于定义枚举，必要的时候
            ///还需要遍历枚举【Enum】
            //foreach (CourseType course in Enum.GetValues(typeof(CourseType)))
            //    if (course != CourseType.Unknown)
            //        cboCourse.Items.Add(course);

            ///【闻祖东 2013-2-19-220706】这里是一种新的为ComboBox的赋值的方法——使用DataTable。
            ///同时需要关注的是DisplayMember和ValueMember这两个属性。以及这两个属性的取值，和这个DataTable
            ///本身有什么关系。
            DataTable dtCourses = Dal4Teachers.GetCourses();
            cboCourse.DataSource = dtCourses;
            cboCourse.DisplayMember = "CourseName";
            cboCourse.ValueMember = "CourseID";

            ///【闻祖东 2013-2-4-231039】设定两个下拉框的默认选定值。
            ///重新温习：计算机的计数是从0开始的，所以选定0实际上是选定的添加的第一个元素。
            cboSex.SelectedIndex
            = cboCourse.SelectedIndex
            = 0;
        }

        bool ValidAge()
        {
            int iTemp = 0;

            if (int.TryParse(txtAge.Text, out iTemp))
                return true;
            else
                return false;
        }
    }
}
